// 修复 WebpackAppPlusPlugin 的补丁
const path = require('path')

// 补丁函数
function patchWebpackAppPlusPlugin() {
  try {
    const pluginPath = path.join(__dirname, 'node_modules', '@dcloudio', 'vue-cli-plugin-hbuilderx', 'packages', 'webpack-app-plus-plugin', 'index.js')
    const fs = require('fs')
    
    // 读取原始文件
    let content = fs.readFileSync(pluginPath, 'utf8')
    
    // 替换有问题的代码
    const oldCode = `const entry = compiler.options.entry()`
    const newCode = `const entry = typeof compiler.options.entry === 'function' ? compiler.options.entry() : compiler.options.entry`
    
    if (content.includes(oldCode)) {
      content = content.replace(oldCode, newCode)
      fs.writeFileSync(pluginPath, content, 'utf8')
      console.log('✅ WebpackAppPlusPlugin 补丁应用成功')
    } else {
      console.log('ℹ️ WebpackAppPlusPlugin 无需补丁或已修复')
    }
  } catch (error) {
    console.error('❌ 应用 WebpackAppPlusPlugin 补丁失败:', error.message)
  }
}

module.exports = patchWebpackAppPlusPlugin

// 如果是直接运行此文件，则执行补丁
if (require.main === module) {
  patchWebpackAppPlusPlugin()
}